//package com.uestc.servlet.excel;
//
//import java.io.IOException;
//import java.io.OutputStream;
//import java.util.ArrayList;
//import java.util.Arrays;
//import java.util.LinkedHashMap;
//import java.util.List;
//import java.util.Map;
//import java.util.Map.Entry;
//
//import javax.servlet.ServletException;
//import javax.servlet.annotation.WebServlet;
//import javax.servlet.http.HttpServlet;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//
//import org.apache.poi.hssf.usermodel.HSSFCell;
//import org.apache.poi.hssf.usermodel.HSSFCellStyle;
//import org.apache.poi.hssf.usermodel.HSSFFont;
//import org.apache.poi.hssf.usermodel.HSSFRichTextString;
//import org.apache.poi.hssf.usermodel.HSSFRow;
//import org.apache.poi.hssf.usermodel.HSSFSheet;
//import org.apache.poi.hssf.usermodel.HSSFWorkbook;
//import org.apache.poi.hssf.util.HSSFColor;
//
//import com.uestc.admin.AdminBase;
//import com.uestc.admin.AdminException;
//import com.uestc.admin.AdminFactory;
//import com.uestc.servlet.ServletBase;
//import com.uestc.servlet.admin.config.ReadConfig;
//import com.uestc.util.TimeUtil;
//
//@WebServlet("/admin/exportExcel")
//public class ExportExcel extends HttpServlet implements ServletBase {
//
//	private static final long serialVersionUID = 1L;
//
//	public ExportExcel() {
//		super();
//	}
//
//	protected void doGet(HttpServletRequest request, HttpServletResponse response)
//			throws ServletException, IOException {
//		String text = getParameter(request, "text");
//		String beginTime = getParameter(request, "beginTime");
//		String endTime = getParameter(request, "endTime");
//		AdminBase admin = null;
//		try {
//			admin = AdminFactory.getInstance(text);
//		} catch (AdminException e) {
//			e.printStackTrace();
//		}
//		LinkedHashMap<byte[], Map<String, Map<String, String>>> resultMap = admin
//				.getInfoWithCondition(Arrays.asList(new String[] { "info" }), "info", beginTime, endTime, request);
//		String columnName = admin.getColumnName();
//		String[] columns = ReadConfig.getItems(columnName); // 前端要显示的列
//		List<String> headers = new ArrayList<String>();
//		List<String> list = new ArrayList<String>();
//		for (int i = 0; i < columns.length; i++) {
//			String[] column = columns[i].split(",");
//			headers.add(column[0].split(":")[1]);
//			String str = column[2].split(":")[1].replaceAll("}", "");
//			list.add(str.substring(1, str.length() - 1));
//		}
//		System.out.println(list.toString());
//		System.out.println(headers.toString());
//		OutputStream out = response.getOutputStream();
//		String filename = TimeUtil.getDateTime().toString() + text + ".xls";
//		response.addHeader("Content-Disposition",
//				"attachment; filename=" + new String(filename.getBytes("GBK"), "ISO8859-1"));
//		exportExcel(text, headers, resultMap, out, list);
//		out.close();
//		System.out.println("excel导出成功！");
//	}
//
//	protected void doPost(HttpServletRequest request, HttpServletResponse response)
//			throws ServletException, IOException {
//		doGet(request, response);
//	}
//
//	@SuppressWarnings("deprecation")
//	public void exportExcel(String title, List<String> headers,
//			LinkedHashMap<byte[], Map<String, Map<String, String>>> dataset, OutputStream out, List<String> column) {
//		// 声明一个工作薄
//		HSSFWorkbook workbook = new HSSFWorkbook();
//		// 生成一个表格
//		HSSFSheet sheet = workbook.createSheet(title);
//		// 设置表格默认列宽度为20个字节
//		sheet.setDefaultColumnWidth((short) 20);
//		// 生成一个样式
//		HSSFCellStyle style = workbook.createCellStyle();
//		// 设置这些样式
//		style.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
//		style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
//		style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
//		style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
//		style.setBorderRight(HSSFCellStyle.BORDER_THIN);
//		style.setBorderTop(HSSFCellStyle.BORDER_THIN);
//		style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
//		// 生成一个字体
//		HSSFFont font = workbook.createFont();
//		font.setColor(HSSFColor.VIOLET.index);
//		font.setFontHeightInPoints((short) 12);
//		font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
//		// 把字体应用到当前的样式
//		style.setFont(font);
//		// 生成并设置另一个样式
//		HSSFCellStyle style2 = workbook.createCellStyle();
//		style2.setFillForegroundColor(HSSFColor.LIGHT_YELLOW.index);
//		style2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
//		style2.setBorderBottom(HSSFCellStyle.BORDER_THIN);
//		style2.setBorderLeft(HSSFCellStyle.BORDER_THIN);
//		style2.setBorderRight(HSSFCellStyle.BORDER_THIN);
//		style2.setBorderTop(HSSFCellStyle.BORDER_THIN);
//		style2.setAlignment(HSSFCellStyle.ALIGN_CENTER);
//		style2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
//		// 生成另一个字体
//		HSSFFont font2 = workbook.createFont();
//		font2.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
//		// 把字体应用到当前的样式
//		style2.setFont(font2);
//		// 产生表格标题行
//		HSSFRow row = sheet.createRow(0);
//		for (short i = 0; i < headers.size(); i++) {
//			HSSFCell cell = row.createCell(i);
//			cell.setCellStyle(style);
//			HSSFRichTextString text = new HSSFRichTextString(headers.get(i));
//			cell.setCellValue(text);
//		}
//		// 遍历集合数据，产生数据行
//		int index = 1;
//		for (Entry<byte[], Map<String, Map<String, String>>> item : dataset.entrySet()) {
//			Map<String, Map<String, String>> map = item.getValue();
//			row = sheet.createRow(index);
//			for (Entry<String, Map<String, String>> item1 : map.entrySet()) {
//				Map<String, String> map1 = item1.getValue();
//				for (short i = 0; i < column.size(); i++) {
//					HSSFCell cell = row.createCell(i);
//					cell.setCellStyle(style2);
//					String key = column.get(i);
//					HSSFRichTextString text = new HSSFRichTextString(map1.get(key));
//					cell.setCellValue(text);
//				}
//			}
//			index++;
//		}
//		try {
//			workbook.write(out);
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
//	}
//}
